<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    // const arr = [1,20,30,13,50]
    // // 展开数组 ...arr === 1,20,30,13,50
    // const max = Math.max(...arr)
    // console.log(max)

    // const arr1 = [1,2]
    // const arr2 = [3,4]
    // // 数组拼接
    // const arr3 = [...arr1,...arr2]
    // console.log(arr3)


    // // 补充：对象也使用使用
    // const obj = {name:'tom'}
    // const obj2 = {
    //   age: 10,
    //   gender: '女',
    //   // 合并obj的属性,展开obj的对象，放到当前对象中
    //   ...obj
    // }
    // console.log(obj2) // {age: 10, gender: "女", name: "tom"} 属性都有



    // 认为这是一个伪数组
    // const arrObj = {
    //   0: 'tom',
    //   1: 'tony',
    //   2: 'lucy',
    //   length: 3
    // }
    // // 将伪数组转换真数组
    // const arr = Array.from(arrObj)
    // console.log(arr) // ["tom", "tony", "lucy"]
    // // 补充细节：
    // // 1. length决定数组的长度
    // // 2. 如果伪数组中数据不够length定义的长度，剩余显示 undefined



    const arr = [{ name: 'tom', age: 10 }, { name: 'tony', age: 15 }, { name: 'lucy', age: '19' }]
    
    // forEach() 函数使用
    // item 是每次遍历对应的数据选项
    // i 是每次变对应的索引
    // arr.forEach((item,i)=>{
    //   console.log(item,i)
    // })

    // find() 函数使用
    // const item = arr.find(item=>{
    //   // 也会对数组进行遍历
    //   // 回调函数的返回值如果为真，终止循环，find函数返回当前遍历的这项数据
    //   // 大白话：找到条件符合的数据选项
    //   return item.name === 'tony'
    // })
    // console.log(item)

    // findIndex() 函数使用
    const i = arr.findIndex(item=>{
      // 也会对数组进行遍历
      // 回调函数的返回值如果为真，终止循环，findIndex函数返回返回当前遍历的这项数据对应的索引
      // 大白话：找到条件符合的数据选项对应索引
      return item.name === 'tony'
    })
    console.log(i)
  </script>
</body>

</html>